package br.com.invest.model;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Kirmaier
 */
@Entity
@Table(name = "EMPRESAS")
public class Empresa implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "COD_EMPRESA")
    private Integer codEmpresa;
    @Column(name = "NOME", length = 50)
    private String nome;
    @Column(name = "CNPJ", length = 14)
    private String cnpj;
    @Column(name = "TELEFONE", length = 15)
    private String telefone;
    @Column(name = "EMAIL", length = 30)
    private String email;
    @ManyToOne(optional = false)
    @JoinColumn(name = "COD_CATEGORIA")
    private Categoria categoria;
    @OneToMany
    @JoinColumn(name = "COD_ACAO")
    private Collection<Acao> acoes;

    public Empresa() {
        Categoria categoriaEmpresa;
    }

    public void addAcao(Acao a) {
        a.setEmpresa(this);
        acoes.add(a);
    }

    public void removerAcao(Acao a) {
        acoes.remove(a);
    }

    //<editor-fold defaultstate="collapsed" desc="Getters e Setters">
    public String getCnpj() {
        return cnpj;
    }

    public void setCnpj(String cnpj) {
        this.cnpj = cnpj;
    }

    public Integer getCodEmpresa() {
        return codEmpresa;
    }

    public void setCodEmpresa(Integer codEmpresa) {
        this.codEmpresa = codEmpresa;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    public Categoria getCategoria() {
        return categoria;
    }

    public void setCategoria(Categoria categoria) {
        this.categoria = categoria;
    }

    public Collection<Acao> getAcoes() {
        return acoes;
    }

    public void setAcoes(Collection<Acao> acoes) {
        this.acoes = acoes;
    }
    //</editor-fold>
}
